package com.luojunchong.dubboprovider.service.impl;

import com.luojunchong.dubboapi.module.User;
import com.luojunchong.dubboapi.service.HelloService;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.stereotype.Component;

/**
 * @Author: luoJunChong
 * @Date: 2025/11/7 11:20
 * 1. @DubboService：Dubbo 服务暴露注解（替代旧版 @Service）
 * 2. version：服务版本号（用于多版本兼容，必填规范）
 * 3. timeout：服务超时时间（默认3000ms，避免无限等待）
 */
@DubboService(version = "1.0.0", timeout = 3000)
@Component // 交给 Spring 管理（可选，Dubbo 也会扫描）
public class HelloServiceImpl implements HelloService {

    @Override
    public String sayHello(String name) {
        // 模拟业务逻辑
        return String.format("【Dubbo 生产者】Hello, %s! 服务版本：1.0.0", name);
    }

    @Override
    public String greetUser(User user) {
        if (user == null) {
            throw new IllegalArgumentException("用户信息不能为空");
        }
        return String.format("【Dubbo 生产者】欢迎用户：%s（ID：%s，年龄：%d）",
                user.getName(), user.getId(), user.getAge());
    }
}